home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d15 / maximo_1.arc / TXT.ARC / ROI.TXT < prev    next >
Text File  |  1991-08-20  |  14KB  |  608 lines

  1. ;
  2. ;  ROI --  (c) Copyright 1990 Chris Butler
  3. ;
  4.   set all off
  5.   goto top
  6. all:
  7.   set all on
  8. top:
  9.  
  10.  
  11. video 1
  12.  
  13. color 1
  14. clearscr
  15. color 15 1
  16. set all_savings 0
  17. set tot_sav_1 0
  18. set tot_sav_2 0
  19. set tot_sav_3 0
  20.  
  21. set inv_value 0
  22. set inv_sav_1 0
  23. set inv_sav_2 0
  24. set inv_sav_3 0
  25.  
  26. set purch_value 0
  27. set purch_sav_1 0
  28. set purch_sav_2 0
  29. set purch_sav_3 0
  30.  
  31. set labor_value 0
  32. set labor_sav_1 0
  33. set labor_sav_2 0
  34. set labor_sav_3 0
  35.  
  36. set down_hrs 0
  37. set prod_cost 0
  38. set down_cost 0
  39. set prodn_sav_1 0
  40. set prodn_sav_2 0
  41. set prodn_sav_3 0
  42.  
  43. set equip_value 0
  44. set equip_sav_1 0
  45. set equip_sav_2 0
  46. set equip_sav_3 0
  47.  
  48. ; INITIAL PAINT SCREEN
  49. ; HEADER AREA
  50.  
  51. databegin line1
  52. text 0,24 chr(201)
  53. mark 33 
  54. text chr(205)
  55. loop
  56. text " MAXIMO ROI "
  57. mark 33 
  58. text chr(205)
  59. loop
  60. text 79,24 chr(187)
  61. text 0,23 chr(186)$@$chr(186)
  62. text 0,22 chr(186)$@$chr(186)
  63. text 0,21 chr(200)
  64. mark 78 
  65. text chr(205)
  66. loop
  67. text chr(188)
  68.  
  69. ; WORKSHEET AREA
  70.  
  71. databegin title_row
  72. text 0,20 chr(201)$@$chr(187)
  73. text 0,19 chr(186)$@$chr(186)
  74. text 0,18 chr(204)$@$chr(185)
  75. databegin inv
  76. text 0,17 chr(186)$@$chr(186)
  77. text 0,16 chr(199)$@$chr(182)
  78. databegin purch
  79. text 0,15 chr(186)$@$chr(186)
  80. text 0,14 chr(199)$@$chr(182)
  81. databegin labor
  82. text 0,13 chr(186)$@$chr(186)
  83. text 0,12  chr(199)$@$chr(182)
  84. databegin prodn
  85. text 0,11 chr(186)$@$chr(186)
  86. text 0,10 chr(186)$@$chr(186)
  87. text 0,9 chr(186)$@$chr(186)
  88. text 0,8 chr(199)$@$chr(182)
  89. databegin equip
  90. text 0,7 chr(186)$@$chr(186)
  91. text 0,6 chr(199)$@$chr(182)
  92. text 0,5 chr(186)$@$chr(186)
  93. text 0,4 chr(200)$@$chr(188)
  94. databegin cmds
  95. color 15 7
  96. text 1,0 @
  97. text 36,0 chr(25)
  98. WHEN F10 GOTO CLOCK
  99.  
  100. ; GET INV VALUES
  101.  
  102. getinv:
  103. color 15        ;  start w/inv sect hilited
  104. rect 25,17 33,17
  105. color 1 15
  106. text 34-len(@inv_value),17 @inv_value
  107.  
  108. color 1 7
  109. databegin invhlp
  110. text 1,3 @
  111. text 1,2 @
  112. text 1,1 @
  113.  
  114. color  1 15
  115. set var3 right(@inv_value,1)
  116. intin 25,17 @var3
  117. if @0==skip inv_skip
  118. if @0==up inv_skip
  119. set inv_value @0
  120.  
  121. inv_skip:
  122. set inv_sav_1 (@inv_value/100)*3
  123. set inv_sav_2 (@inv_value/100)*5
  124. set inv_sav_3 (@inv_value/100)*7
  125.  
  126. color 1
  127. rect 25,17 33,17
  128. rect 39,17 48,17
  129. rect 54,17 63,17
  130. rect 69,17 78,17
  131. color 15 1
  132. text 34-len(@inv_value),17 @inv_value
  133. text 48-len(@inv_sav_1),17 @inv_sav_1
  134. text 63-len(@inv_sav_2),17 @inv_sav_2
  135. text 78-len(@inv_sav_3),17 @inv_sav_3
  136. sum_savings
  137.  
  138. if @0==up getequip
  139.  
  140. ; GET PURCH VALUES
  141.  
  142. getpurch:
  143. color 15
  144. rect 25,15 33,15
  145. color 1 15
  146. text 34-len(@purch_value),15 @purch_value
  147. color 15 1
  148. text 48-len(@purch_sav_1),15 @purch_sav_1
  149. text 63-len(@purch_sav_2),15 @purch_sav_2
  150. text 78-len(@purch_sav_3),15 @purch_sav_3
  151.  
  152. color 1 7
  153. databegin purchhlp
  154. text 1,3 @
  155. text 1,2 @
  156. text 1,1 @
  157.  
  158. color  1 15
  159. set var3 right(@purch_value,1)
  160. intin 25,15 @var3
  161. if @0==skip purch_skip
  162. if @0==up purch_skip
  163.  
  164. set purch_value @0
  165.  
  166. purch_skip:
  167. set purch_sav_1 (@purch_value/100)*5
  168. set purch_sav_2 (@purch_value/100)*10
  169. set purch_sav_3 (@purch_value/100)*15
  170.  
  171. sum_savings
  172. color 1
  173. rect 25,15 33,15
  174. rect 39,15 48,15
  175. rect 54,15 63,15
  176. rect 69,15 78,15
  177. color 15 1
  178. text 34-len(@purch_value),15 @purch_value
  179. text 48-len(@purch_sav_1),15 @purch_sav_1
  180. text 63-len(@purch_sav_2),15 @purch_sav_2
  181. text 78-len(@purch_sav_3),15 @purch_sav_3
  182.  
  183. if @0==up getinv
  184.  
  185. ; GET LABOR VALUE
  186.  
  187. getlabor:
  188. color 15
  189. rect 25,13 33,13
  190. color 1 15
  191. text 34-len(@labor_value),13 @labor_value
  192. color 15 1
  193. text 48-len(@labor_sav_1),13 @labor_sav_1
  194. text 63-len(@labor_sav_2),13 @labor_sav_2
  195. text 78-len(@labor_sav_3),13 @labor_sav_3
  196.  
  197. color 1 7
  198. databegin laborhlp
  199. text 1,3 @
  200. text 1,2 @
  201. text 1,1 @
  202.  
  203. color  1 15
  204. set var3 right(@labor_value,1)
  205. intin 25,13 @var3
  206. if @0==skip labor_skip
  207. if @0==up labor_skip
  208.  
  209. set labor_value @0
  210.  
  211. labor_skip:
  212. set labor_sav_1 (@labor_value/100)*5
  213. set labor_sav_2 (@labor_value/100)*10
  214. set labor_sav_3 (@labor_value/100)*20
  215.  
  216. sum_savings
  217. color 1
  218. rect 25,13 33,13
  219. rect 39,13 48,13
  220. rect 54,13 63,13
  221. rect 69,13 78,13
  222. color 15 1
  223. text 34-len(@labor_value),13 @labor_value
  224. text 48-len(@labor_sav_1),13 @labor_sav_1
  225. text 63-len(@labor_sav_2),13 @labor_sav_2
  226. text 78-len(@labor_sav_3),13 @labor_sav_3
  227.  
  228. if @0==up getpurch
  229.  
  230. ; GET PRODN NUMBERS
  231.  
  232. getprodn:
  233. color 15
  234. rect 25,11 33,11
  235. color 1 15
  236. text 34-len(@down_hrs),11 @down_hrs
  237.  
  238. color 1 7
  239. databegin prodnhlp
  240. text 1,3 @
  241. text 1,2 @
  242. text 1,1 @
  243.  
  244. color 1 15
  245. set var3 right(@down_hrs,1)
  246. intin 25,11 @var3
  247. if @0==skip hrs_skip
  248. if @0==up hrs_skip
  249.  
  250. set down_hrs @0
  251.  
  252. hrs_skip:
  253. set down_cost @prod_cost*@down_hrs
  254. set prodn_sav_1 (@down_cost*3)/100
  255. set prodn_sav_2 (@down_cost*5)/100
  256. set prodn_sav_3 (@down_cost*10)/100
  257.  
  258. color 1
  259. rect 25,11 33,11
  260. rect 25,9 33,9
  261. rect 39,9 48,9
  262. rect 54,9 63,9
  263. rect 69,9 78,9
  264. color 15 1
  265. text 34-len(@down_hrs),11 @down_hrs
  266. text 34-len(@down_cost),9 @down_cost
  267. text 48-len(@prodn_sav_1),9 @prodn_sav_1
  268. text 63-len(@prodn_sav_2),9 @prodn_sav_2
  269. text 78-len(@prodn_sav_3),9 @prodn_sav_3
  270. sum_savings
  271.  
  272. if @0==up getlabor
  273.  
  274. getcost:
  275. color 15
  276. rect 25,10 33,10
  277. color 1 15
  278. text 34-len(@prod_cost),10 @prod_cost
  279. set var3 right(@prod_cost,1)
  280. intin 25,10 @var3
  281. if @0==skip cost_skip
  282. if @0==up cost_skip
  283. set prod_cost @0
  284.  
  285. cost_skip:
  286. set down_cost @prod_cost*@down_hrs
  287. set prodn_sav_1 (@down_cost*3)/100
  288. set prodn_sav_2 (@down_cost*5)/100
  289. set prodn_sav_3 (@down_cost*10)/100
  290. color 1
  291. rect 25,10 33,10
  292. rect 25,9 33,9
  293. rect 39,9 48,9
  294. rect 54,9 63,9
  295. rect 69,9 78,9
  296.  
  297. color 15 1
  298. text 34-len(@prod_cost),10 @prod_cost
  299. text 34-len(@down_cost),9 @down_cost
  300. text 48-len(@prodn_sav_1),9 @prodn_sav_1
  301. text 63-len(@prodn_sav_2),9 @prodn_sav_2
  302. text 78-len(@prodn_sav_3),9 @prodn_sav_3
  303. sum_savings
  304.  
  305. if @0==up getprodn
  306.  
  307. ; GET EQUIP VALUE
  308. getequip:
  309.  
  310. color 15
  311. rect 25,7 33,7
  312. color 1 15
  313. text 34-len(@equip_value),7 @equip_value
  314. color 15 1
  315. text 48-len(@equip_sav_1),7 @equip_sav_1
  316. text 63-len(@equip_sav_2),7 @equip_sav_2
  317. text 78-len(@equip_sav_3),7 @equip_sav_3
  318.  
  319. color 1 7
  320. databegin equiphlp
  321. text 1,3 @
  322. text 1,2 @
  323. text 1,1 @
  324.  
  325. color 1 15
  326. set var3 right(@equip_value,1)
  327. intin 25,7 @var3
  328. if @0==skip equip_skip
  329. if @0==up equip_skip
  330.  
  331. set equip_value @0
  332.  
  333. equip_skip:
  334. set equip_sav_1 (@equip_value/100)
  335. set equip_sav_2 (@equip_value/100)*2
  336. set equip_sav_3 (@equip_value/100)*5
  337.  
  338. sum_savings
  339. color 1
  340. rect 25,7 33,7
  341. rect 39,7 48,7
  342. rect 54,7 63,7
  343. rect 69,7 78,7
  344. color 15 1
  345. text 34-len(@equip_value),7 @equip_value
  346. text 48-len(@equip_sav_1),7 @equip_sav_1
  347. text 63-len(@equip_sav_2),7 @equip_sav_2
  348. text 78-len(@equip_sav_3),7 @equip_sav_3
  349.  
  350. if @0==up getcost
  351. goto getinv
  352.  
  353. ; SUBR SUM_SAVINGS -- add all savings
  354. ;        
  355. sum_savings:
  356. set tot_sav_1 @inv_sav_1+@purch_sav_1+@labor_sav_1
  357. set tot_sav_1 @tot_sav_1+@prodn_sav_1+@equip_sav_1
  358. set tot_sav_2 @inv_sav_2+@purch_sav_2+@labor_sav_2
  359. set tot_sav_2 @tot_sav_2+@prodn_sav_2+@equip_sav_2
  360. set tot_sav_3 @inv_sav_3+@purch_sav_3+@labor_sav_3
  361. set tot_sav_3 @tot_sav_3+@prodn_sav_3+@equip_sav_3
  362.  
  363. color 1
  364. rect 39,5 48,5
  365. rect 54,5 63,5
  366. rect 69,5 78,5
  367.  
  368. color 15 1
  369. text 48-len(@tot_sav_1),5 @tot_sav_1
  370. text 63-len(@tot_sav_2),5 @tot_sav_2
  371. text 78-len(@tot_sav_3),5 @tot_sav_3
  372.  
  373. return ; SUBR SUM_SAVINGS
  374. -------------------------------------------------
  375. ; SUBR INTIN -- gets an integer from kbrd
  376. ;    @1 = x 
  377. ;       @2 = y
  378. ;       @3 = blink bgrnd (for flashing)
  379.  
  380. intin:
  381. set x @1
  382. set y @2
  383. local newint ""
  384. local newchar 0
  385. set blinkchar @3
  386. set firsttime true
  387.  
  388. int_top:
  389.   text @x+8,@y chr(177)
  390.   waitkey 25 inv_loop_2
  391.   text @x+8,@y @blinkchar    ; blank out the first spot
  392.   goto inv_loop_3
  393. inv_loop_2:
  394.   text @x+8,@y @blinkchar
  395.   waitkey 25 int_top
  396. inv_loop_3:
  397.  
  398. getkey newchar
  399. if asc(@newchar)<asc("0") not_numb
  400. if asc(@newchar)>asc("9") not_numb
  401. set newint @newint$@newchar
  402. goto next_char
  403. waitkey ; after 0<c<9
  404.  
  405. not_numb:
  406.   if asc(@newchar)==13 lv_intin ; enter?
  407.   if asc(@newchar)==8 back_up ; enter?
  408.   if asc(@newchar)==80 dn_arrow ; down arrow?
  409.   if asc(@newchar)==72 up_arrow
  410.   noise 500 300 20
  411.   goto next_char
  412.  
  413. back_up:
  414.   if len(@newint)==0 next_char    ; 0 len str?
  415.   set newint left(@newint,len(@newint)-1) ; drop last digit
  416.   goto next_char
  417.  
  418. next_char:
  419.   set firsttime false
  420.   color 15
  421.   rect @x,@y @x+8,@y
  422.   color 1,15
  423.   text @x+9-len(@newint),@y @newint
  424.   if len(@newint)==9 lv_intin    ; max input length
  425.   if len(@newint)==0              ; update blink bgrnd
  426.      set blinkchar " "
  427.     else 
  428.      set blinkchar right(@newint,1)
  429.     endif
  430.   goto int_top
  431.  
  432. dn_arrow:
  433.   return "skip"
  434.  
  435. up_arrow:
  436.   return "up"
  437.  
  438. lv_intin:
  439.   if @firsttime<>true lv_int_2
  440.   return "skip"        ; just <Enter> = DOWN
  441. lv_int_2:
  442.   note 500 20 10
  443.   if len(@newint)==0
  444.     set newint 0    ; backsp whole entry
  445.     endif
  446.   return @newint    ; END SUBR INTIN
  447. ---------------------------------
  448.  
  449. line1:
  450. " Use this worksheet to see how much money MAXIMO Series 3 can save you. Note  " 
  451. " that savings increase over time as you gain experience with MAXIMO and CMMS. "
  452. dataend
  453. title_row:
  454. "══════════════════════╤══════════╤══════════════╤══════════════╤══════════════"
  455. "  SAVINGS CATEGORY    │  VALUE   │ YR 1 SAVINGS │ YR 2 SAVINGS │ YR 3 SAVINGS "
  456. "══════════════════════╪══════════╪══════════════╪══════════════╪══════════════"
  457. ;012345678901234567890123456789012345678901234567890123456789012345678901234567
  458. inv: 
  459. "1. Spares Inventory   │          │  3%          │  5%          │  7%          "
  460. "──────────────────────┼──────────┼──────────────┼──────────────┼──────────────"
  461. purch:
  462. "2. Maint. Purchases   │          │  5%          │ 10%          │ 15%          "
  463. "──────────────────────┼──────────┼──────────────┼──────────────┼──────────────"
  464. labor:
  465. "3. Overtime Labor     │          │  5%          │ 10%          │ 20%          "
  466. "──────────────────────┼──────────┼──────────────┼──────────────┼──────────────"
  467. prodn:
  468. "4. Downtime (hrs/yr)  │          │              │              │              "
  469. "       cost/lost hour │          │              │              │              "
  470. "     downtime cost/yr │          │  3%          │  5%          │ 10%          "
  471. "──────────────────────┼──────────┼──────────────┼──────────────┼──────────────"
  472. equip:
  473. "5. Prod. Asset Value  │          │  1%          │  2%          │  5%          "
  474. "══════════════════════╪══════════╪══════════════╪══════════════╪══════════════"
  475. "*  Savings Potential  │          │  $           │  $           │  $           "
  476. "══════════════════════╧══════════╧══════════════╧══════════════╧══════════════"
  477. cmds:
  478. " <Backspace>=erase <Enter>=accept < >=next row <PrintScreen>=print <F10>=done "
  479. invhlp:
  480. " MAXIMO helps minimize stock levels, minimize sku's, eliminate obsolete parts."
  481. " Reducing inventory saves interest, warehousing, insurance, etc. In Year 3    "
  482. " reduce inventory 20% and save 35% inventory carrying costs to net 7% savings."
  483. purchhlp:
  484. " MAXIMO helps secure vendors' best prices, minimize emergency order costs, and"
  485. " predict expenditures. Savings increase to 15% of maintenance purchases.      "
  486. " Please enter current annual maintenance purchases.                           "
  487. laborhlp:
  488. " MAXIMO matches labor skills to jobs, identifies needed parts and tools, and  "
  489. " uses PM to reduce emergencies. Only overtime reduction is included here.     "
  490. " (Regular labor productivity gain is substantial, but difficult to estimate.) "
  491. prodnhlp:
  492. " MAXIMO reduces unplanned downtime occurrences, minimizes maintenance time,   "
  493. " coordinates PM and production schedules, and analyzes outage history. Result "
  494. " is reduced downtime. Enter annual downtime hours and hourly production cost. "
  495. equiphlp:
  496. "  MAXIMO MAKES PM WORK with equipment condition tracking and prioritization   "
  497. "  and management of repair projects. Equipment life extension is conserva-    "
  498. "  tively estimated to save 1-5%. Enter book value of production equipment.    "
  499.  
  500.  
  501.  
  502. clock:
  503. video m
  504. color 8
  505. clearscr
  506.  
  507. set pendxoff 34
  508. set pendyoff 82
  509. set basex 62 ;
  510. set basey 40
  511. set delay 20
  512.  
  513. color 0        ; floor
  514. rect 0,@basey-2 639,@basey-6
  515.  
  516. cload clock3.clp 1 0 0
  517. putup @basex,@basey 1 
  518. cfree 1
  519.  
  520. cload pendulm1.clp 1 1 0
  521. cload pendulm2.clp 2 1 0
  522. cload pendulm3.clp 3 1 0
  523. cload pendulm4.clp 4 1 0
  524. cload pendulm5.clp 5 1 0
  525.  
  526. mark 4
  527. putup @pendxoff+@basex,@pendyoff+@basey 1  @delay
  528. putup @pendxoff+@basex,@pendyoff+@basey 2  @delay
  529. putup @pendxoff+@basex,@pendyoff+@basey 3  @delay
  530. note 500 10 10 
  531. putup @pendxoff+@basex,@pendyoff+@basey 2  @delay
  532. putup @pendxoff+@basex,@pendyoff+@basey 1  @delay
  533. putup @pendxoff+@basex,@pendyoff+@basey 4  @delay
  534. putup @pendxoff+@basex,@pendyoff+@basey 5  @delay
  535. note 1000 10 10
  536. putup @pendxoff+@basex,@pendyoff+@basey 4  @delay
  537. loop
  538.  
  539. cload roicall.clp 10 1 0
  540. putup 176,70 10
  541.  
  542. mark 20
  543. putup @pendxoff+@basex,@pendyoff+@basey 1 
  544. waitkey 20 pend_1
  545. goto pend_done
  546. pend_1:
  547. putup @pendxoff+@basex,@pendyoff+@basey 2 
  548. waitkey 20  pend_2
  549. goto pend_done
  550. pend_2:
  551. putup @pendxoff+@basex,@pendyoff+@basey 3 
  552. note 500 10 10
  553. putup @pendxoff+@basex,@pendyoff+@basey 2 
  554. waitkey 20  pend_3
  555. goto pend_done
  556. pend_3:
  557. putup @pendxoff+@basex,@pendyoff+@basey 1 
  558. waitkey 20  pend_4
  559. goto pend_done
  560. pend_4:
  561. putup @pendxoff+@basex,@pendyoff+@basey 4 
  562. waitkey 20  pend_5
  563. goto pend_done
  564. pend_5:
  565. putup @pendxoff+@basex,@pendyoff+@basey 5 
  566. note 1000 10 10
  567. waitkey 10  pend_6
  568. goto pend_done
  569. pend_6:
  570. putup @pendxoff+@basex,@pendyoff+@basey 4 
  571. waitkey 20  pend_7
  572. goto pend_done
  573. pend_7:
  574. loop
  575. goto pend_ex
  576. pend_done:
  577. break pend_ex
  578. pend_ex:
  579.  
  580.  
  581. cload roiblank.clp 10 1 1 
  582. cfade 24 176,70 10
  583. waitkey 100
  584. putup @pendxoff+@basex,@pendyoff+@basey 1 
  585. cfree 1 2 3 4 5 6 7
  586. cload 12oclock.clp 1 0 0 
  587. putup @basex+50,@basey+259 1
  588.  
  589. mark 2
  590. note 137 50 50
  591. note 172 50 50
  592. note 153 50 50 
  593. note 230 100 50
  594. waitkey 50 
  595. note 230 50 50
  596. note 153 50 50 
  597. note 137 50 50
  598. note 172 100 50
  599. waitkey 50
  600. loop
  601.  
  602. if @all==on
  603.   link master.txt entry_15
  604.  else
  605.   link master.txt entry_14
  606. ; END ROI
  607.  
  608.